import pymysql


# 这里是将操作数据库的工具 进行类的封装
class Dbtools:

    # 这里是将需要连接数据库的相关信息设定为类属性

    # 服务器地址 (本机的ip地址)
    host = 'localhost'
    # 端口 （数据库的端口）
    port = 3306
    # 数据库
    db = 'choose'
    # 用户名
    user = 'root'
    # 密码
    password = '123456'

    # 连接数据库 （这里用类方法定义）
    @classmethod
    def get_connection(cls):
        conn = pymysql.connect(host=cls.host,port=cls.port,db=cls.db,user=cls.user,password=cls.password)
        return conn

    # 获取游标    （这里用类方法定义）
    # 这里需要传入一个连接地址conn 再用 conn.cursor(pymysql.cursors.DictCursor) 来完成连接对象的建立（游标的建立）
    @classmethod
    def get_cursor(cls,conn):
        cursor = conn.cursor(pymysql.cursors.DictCursor)
        return cursor

    # 释放资源  (用于没有更改数据 (仅仅是数据的查询) 即不需要commit时的释放资源)
    # 关闭资源需要传入两个数据 一个是连接地址 一个是游标
    @classmethod
    def close(cls,conn,cursor):
        cursor.close()
        conn.close()

    # 释放资源 （用于有更改数据 即需要commit时的释放资源)
    @classmethod
    def commit_and_close(cls,conn,cursor):
        conn.commit()
        cursor.close()
        conn.close()


